﻿using System;
using System.Data;
using System.Linq;
using LayerEntity.Persona.BaseClass;

namespace LayerEntity.Persona
{
    public class EContacto : EInformacionContacto
    {
        #region Constructores
        /// <summary>
        /// Unicializa la clase <see cref="EContacto"/>
        /// </summary>
        /// <param name="record">
        /// 
        /// </param>
        public EContacto(IDataRecord record,bool onlyContact)
            : base()
        {
            if (!onlyContact) {
                this.IdEstadoRelacion = (int)record["estado_relacion"];
                this.IdPersona = record["id_persona"].ToString();
                this.IdRelacion = (int)record["id_registro"];
                this.TipoContacto = (int)record["tipo_contacto"];
            }
            this.Direccion = record["dir_contacto"].ToString();
            this.EMail = record["email_contacto"].ToString();
            this.IdDocumento = (int)record["id_documento"];
            this.IdEstado = (int)record["id_estado"];
           
            this.IngresoMes = (double)record["ingrmes_contacto"];
            this.IsPrincipal = false;
            this.Item = (int)record["id_contacto"];
            this.Movil = record["mov_contacto"].ToString();
            this.Nextel = record["nex_contacto"].ToString();
            this.NombreContacto = record["nom_contacto"].ToString();
            this.Numero = record["doc_contacto"].ToString();
            this.Ocupacion = record["ocu_contacto"].ToString();
            this.Referencia = record["ref_contacto"].ToString();
            this.Rpm = record["rpm_contacto"].ToString();
            this.Sexo = (int)record["sex_contacto"];
            this.Telefono = record["tel_contacto"].ToString();
            this.TrabajoActual = record["trabactu_contacto"].ToString();
            this.Ubigeo = record["ubigeo"].ToString();
            this.Web = record["web_contacto"].ToString();
            this.CentroTrabajo = record["centrab_contacto"].ToString();
            this.Ubicacion  = record["ubi_contacto"].ToString();
        }
        /// <summary>
        /// Unicializa la clase <see cref="EContacto"/>
        /// </summary>
        public EContacto() : base()
        {
            this.IdDocumento = 0;
            this.Numero = string.Empty ;
            this.Sexo = -1;
            this.Direccion = string .Empty ;
            this.Ubigeo = string.Empty ;
            this.IngresoMes = 0.0;
            this.Ocupacion = string.Empty ;
            this.TrabajoActual = string.Empty ;
            this.IdEstadoRelacion = 0;
            this.IdRelacion = 0;
            this.TipoContacto = 0;
            this.CentroTrabajo = string.Empty;
            this.Ubicacion = string.Empty;
        }
        
        #endregion
        
        #region Propiedades
        public int IdDocumento { get; set; }
        public string Numero { get; set; }
        public int Sexo { get; set; }
        public string Direccion { get; set; }
        public string Ubigeo { get; set; }
        public double IngresoMes { get; set; }
        public string Ocupacion { get; set; }
        public string TrabajoActual { get; set; }
        public int IdEstadoRelacion { get; set; }
        public int IdRelacion { get; set; }
        public int TipoContacto { get; set; }
        public string CentroTrabajo { get; set; }
        public string Ubicacion { get; set; }
        #endregion

        #region Funciones

        public object[] ContactToObject(int op)
        {
            object[] res = new object[]
            {
                this.Item, //id_contacto ,
                this.NombreContacto, //nom_contacto
                this.Telefono, //tel_contacto
                this.Movil, //mov_contacto 
                this.Nextel, //nex_contacto 
                this.Rpm, //rpm_contacto 
                this.Referencia, //ref_contacto 
                this.IdEstado, //id_estado 
                this.EMail, //email_contacto 
                this.Web, //web_contacto 
                this.IdDocumento, //id_documento 
                this.Numero, //doc_contacto 
                this.Sexo, //sex_contacto 
                this.Direccion, //dir_contacto 
                this.Ubigeo, //ubigeo 
                this.CentroTrabajo, //centrab_contacto 
                this.Ubicacion, //ubi_contacto 
                this.IngresoMes, //ingrmes_contacto 
                this.Ocupacion, //ocu_contacto 
                this.TrabajoActual, //trabactu_contacto 
                op
            };
            return res;
        }

        public object[] ContactRelationToObject(int op)
        {
            object[] res = new object[]
            {
                this.Item, //id_contacto 
                this.IdPersona, //id_persona 
                this.IdEstadoRelacion, //id_estado 
                this.TipoContacto, //tipo_contacto 
                this.IdRelacion, //id_registro 
                op 
            };

            return res;
        }
        #endregion
    }
}